package com.frejoys.service;


import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.frejoys.common.dto.agent.AgentRoleSaveDto;
import com.frejoys.common.dto.agent.AgentRoleUpdateDto;
import com.frejoys.common.vo.agent.AgentRoleVo;
import com.frejoys.dao.entity.AgentRole;

import java.util.List;
import java.util.Map;

public interface AgentRoleService extends IService<AgentRole> {

    default AgentRole getOnly(QueryWrapper<AgentRole> wrapper) {
        wrapper.last("limit 1");
        return this.getOne(wrapper);
    }

    default AgentRole getOnly(LambdaQueryWrapper<AgentRole> wrapper) {
        wrapper.last("limit 1");
        return this.getOne(wrapper);
    }

    // 获取所有代理角色
    List<AgentRole> getList();

    /**
     * 获取指定的角色对应的比例
     * @param agentRoles
     * @param id
     * @return
     */
    Map<Integer, Integer> getListById(List<AgentRole> agentRoles, List<Integer> id);

    /**
     * 后台设置代理角色
     */
    boolean saveAgentRole(AgentRoleSaveDto dto);

    /**
     * 后台修改代理角色
     */
    boolean updateAgentRole(AgentRoleUpdateDto dto);

    /**
     * 后台查询代理角色
     */
    List<AgentRoleVo> searchAgentRoleList();
}
